package net.oaktoncc;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

/**
 * TODO: Javadoc
 *
 * @author aeagle
 */
public interface Operation {
	
	/**
	 * Same as {@link #execute(OutputStream)}, but with the output stream of the implementer's choice.
	 * @throws IOException
	 */
	public void execute() throws IOException;
	
	/**
	 * Write the execution result to the specified writer.
	 * @param out
	 * @throws IOException
	 */
    public void execute(final PrintWriter writer) throws IOException;
}
